Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JENKINS-60381] Remove old, deprecated agent protocols. #4387

Merged
merged 5 commits into from
Jan 10, 2020

Conversation

jeffret-b
Copy link
Contributor

@jeffret-b jeffret-b commented Dec 5, 2019

Remove old, deprecated agent protocols that haven't been supported for a couple of years.

See JENKINS-60381.

This also includes the Remoting release 3.40. See the Remoting changelog. This mostly involves removing the protocols from the Remoting library. It also includes a few other maintenance chores.

Proposed changelog entries

  • Remove old, deprecated, unsupported agent protocols Inbound TCP Agent Protocol/1, Inbound TCP Agent Protocol/2, and Inbound TCP Agent Protocol/3. (issue 60381)
  • Update Remoting from 3.36 to 3.40 to remove unsupported protocols and minor maintenance improvements. (full changelog)

Proposed upgrade guidelines

==== Remove unsupported agent protocols
https://issues.jenkins-ci.org/browse/JENKINS-60381[JENKINS-60381]

Old, long deprecated, unsupported agent protocols have been removed from Jenkins. These are agent-initiated protocols, where the connection is launched on the agent. The protocols are currently called Inbound TCP Agent Protocol/1, Inbound TCP Agent Protocol/2, and Inbound TCP Agent Protocol/3. In other documents and times they have also been known as JNLP1-connect, JNLP2-connect, and JNLP3-connect.

The Inbound TCP Agent Protocol/4 (JNLP4-connect) was introduced in October 2016 to provide a more secure, stable, and scalable mechanism for agent-initiated connections. The prior protocols were deprecated and unsupported less than a year later as this protocol was proven superior. Since that time there has been an administrative monitor and UI warning against their use. This release removes the earlier protocols and the administrative monitor.

If you are still using an unsupported protocol you must manually upgrade to a supported connection mechanism. To continue using agent-initiated connections TCP Agent Protocol/4 is recommended. Agents using one of the unsupported protocols will not work until reconfigured.

Submitter checklist

  • JIRA issue is well described
  • Changelog entry appropriate for the audience affected by the change (users or developer, depending on the change). Examples
    * Use the Internal: prefix if the change has no user-visible impact (API, test frameworks, etc.)
  • Appropriate autotests or explanation to why this change has no tests
    No tests needed for removed functionality.
  • For dependency updates: links to external changelogs and, if possible, full diffs

@jeffret-b jeffret-b requested a review from jvz December 5, 2019 17:04
@oleg-nenashev
Copy link
Member

oleg-nenashev commented Dec 5, 2019 via email

@jeffret-b
Copy link
Contributor Author

We should post on the blog about this. Not sure if it should be before or concurrent with making the change. What do you think?

I don't know what the admin monitor would do.

Copy link
Member

@jvz jvz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM so far. I'll note that I tend to use SSH agents rather than JNLP, so I might not be the target audience, though.

@jeffret-b
Copy link
Contributor Author

Try the build again?

@jeffret-b jeffret-b closed this Dec 6, 2019
@jeffret-b jeffret-b reopened this Dec 6, 2019
@res0nance res0nance added the upgrade-guide-needed This changes might be breaking in rare circumstances, an entry in the LTS upgrade guide is needed label Dec 9, 2019
@daniel-beck
Copy link
Member

Build failed because JnlpAgentReceiver.java has Javadoc @{link }s to now removed classes.

@daniel-beck
Copy link
Member

Remove old, deprecated, unsupported agent protocols JNLP1-connect, JNLP2-connect, and JNLP3-connect

Please use the labels used on the UI for the changelog.

@jeffret-b
Copy link
Contributor Author

Please use the labels used on the UI for the changelog.

I'm not sure what to call it. Bug fix? Enhancement? WDYT?

@MarkEWaite
Copy link
Contributor

Please use the labels used on the UI for the changelog.

I'm not sure what to call it. Bug fix? Enhancement? WDYT?

Some of the repositories that use release drafter have a remove label. I think this qualifies as remove. Unfortunately, this repository does not seem to have the remove label.

@daniel-beck
Copy link
Member

I'm not sure what to call it. Bug fix? Enhancement? WDYT?

To clarify, I'm asking for "Inbound Agent Protocol/3" or whatever it is called in favor of "JNLP3-connect".

@jeffret-b
Copy link
Contributor Author

To clarify, I'm asking for "Inbound Agent Protocol/3" or whatever it is called in favor of "JNLP3-connect".

Ah, that clarifies. I'll use the current naming.

Remove anything unnecessary. Move SLAVE_SECRET to JnlpAgentReceiver
and alias it for existing usages.
@jeffret-b
Copy link
Contributor Author

Can anyone share information about the process for updating the upgrade guide? Do I just create a new file in a PR here: https://github.com/jenkins-infra/jenkins.io/tree/master/content/_data/upgrades ?

@jeffret-b
Copy link
Contributor Author

Thanks for reviewing, Jesse! I hadn't gotten around to finishing this one up after completing the Remoting side. I incorporated your suggestions so this should be ready to go once I get a good build.

@jeffret-b jeffret-b marked this pull request as ready for review January 3, 2020 19:19
@jglick jglick added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Jan 3, 2020
@scherler scherler mentioned this pull request Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major-rfe For changelog: Major enhancement. Will be highlighted on the top plugin-api-changes Changes the API of Jenkins available for use in plugins. ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback upgrade-guide-needed This changes might be breaking in rare circumstances, an entry in the LTS upgrade guide is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants